package com.wenhao.leetcode.easy;

/**
 * 题目：https://leetcode-cn.com/problems/merge-sorted-array/
 * 合并两个有序数组
 *
 * 因为这道题目nums1数组后面是空闲的，所以从后往前排序，就不需要辅助空间了
 * 思路和原地的归并排序是一样的
 * 只不过归并排序是把前面的一半复制出来，所以可以从前往后排序
 *
 * @author Wenhao Tong
 * @Description
 * @create 2021-07-08 23:40
 */
public class LeetCode88 {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int indexMerge = m + n - 1;
        int index1 = m - 1;
        int index2 = n - 1;
        while (index1 > -1 && index2 > -1) {
            nums1[indexMerge--] = nums1[index1] > nums2[index2] ? nums1[index1--] : nums2[index2--];
        }
        while (index2 > -1) {
            nums1[indexMerge--] = nums2[index2--];
        }
    }
}
